//找到最高海拔
/*有一个自行车手打算进行一场公路骑行，这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。

给你一个长度为 n 的整数数组 gain ，其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差（0 <= i < n）。请你返回 最高点的海拔 。*/
class Solution {
public:
    int largestAltitude(vector<int>& gain) {
        int Max = 0;
        int count = 0;
        for (auto& num : gain) {
            count += num;
            Max = max(Max, count);
        }
        return Max;
    }
};


//统计各位数字之和为偶数的整数个数
/*给你一个正整数 num ，请你统计并返回 小于或等于 num 且各位数字之和为 偶数 的正整数的数目。

正整数的 各位数字之和 是其所有位上的对应数字相加的结果。

 */
 class Solution {
public:
    int countEven(int num) {
        int k = num / 10;
        int c = num % 10;
        int floag = 0;
        int one = 0;
        while (num) {
            num /= 10;
            if (num % 2)
                one++;
        }
        if (one % 2)
            floag = 1;
        int count = 0;
        for (int i = 0; i <= c; i++) {
            if (floag && i % 2)
                count++;
            else if (floag == 0 && i % 2 == 0)
                count++;
        }
        return k * 5 - 1 + count;
    }
};


//找到和为给定整数的三个连续整数
/*给你一个整数 num ，请你返回三个连续的整数，它们的 和 为 num 。如果 num 无法被表示成三个连续整数的和，请你返回一个 空 数组。*/
class Solution {
public:
    vector<long long> sumOfThree(long long num) {
        vector<long long> ret;
        if (num % 3 == 0) {
            long long temp = num / 3;
            ret.push_back(temp - 1);
            ret.push_back(temp);
            ret.push_back(temp + 1);
        }
        return ret;
    }
};